#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#define MaxSize 50
typedef int ElemType;
typedef struct SeqList{
    ElemType data[MaxSize];
    int length;
}SeqList;
// 初始化数组：给数组中填充元素
void initList(SeqList &S,int length){
    S.length = length;
    srand(time(NULL));// 生成随机数
    for(int i=0;i<S.length;i++){
        S.data[i] = rand()%100;
    }
}
// 遍历数组中的数据
void printList(SeqList S){
    for (int i = 0; i < S.length; ++i) {
        printf("%d ",S.data[i]);
    }
    printf("\n");
}
// 交换元素
void Swap(ElemType &A,ElemType &B){
    ElemType  tmp = A;
    A=B;
    B=tmp;
}
// 选择排序：从小到大
void SelectSort(ElemType E[],int length){
    int min;// 用来存放最小元素的下标
    for(int i=0;i<length-1;i++){ // 最外层用来限定排几趟
        min = i;
        for(int j=i+1;j<length;j++){ // 循环遍历，找到最小元素的下标
            if(E[min] > E[j]){
                min = j;
            }
        }
        // 交换元素
        if(min != i){
            Swap(E[i],E[min]);
        }
    }
}
int main() {
    SeqList S;
    initList(S,10);
    printList(S);
    SelectSort(S.data,S.length);
    printList(S);
    return 0;
}
